.SILENT:

GCCOPTS = -g -Wall -c

socket:
	echo 'Armando ejecutable city con comunicacion por Socket'
	gcc $(GCCOPTS) src/transSocketADT.c -otransSocketADT.o
	gcc $(GCCOPTS) src/city.c -ocity.o
	gcc $(GCCOPTS) src/bondi.c -obondi.o
	gcc $(GCCOPTS) src/linea.c -olinea.o
	gcc $(GCCOPTS) src/lineaInjector.c -olineaInjector.o
	gcc $(GCCOPTS) src/marshallADT.c -omarshallADT.o
	gcc $(GCCOPTS) src/queue.c -oqueue.o
	gcc $(GCCOPTS) src/seminjector.c -oseminjector.o
	gcc $(GCCOPTS) src/cityDrawer.c -ocityDrawer.o
	gcc -ocity -lncurses -lpthread city.o bondi.o linea.o lineaInjector.o marshallADT.o queue.o seminjector.o transSocketADT.o cityDrawer.o
	rm *.o

msgq:
	echo 'Armando ejecutable city con comunicacion por Message Queue'
	gcc $(GCCOPTS) src/transMsgQueueADT.c -otransMsgQueueADT.o
	gcc $(GCCOPTS) src/city.c -ocity.o
	gcc $(GCCOPTS) src/bondi.c -obondi.o
	gcc $(GCCOPTS) src/linea.c -olinea.o
	gcc $(GCCOPTS) src/lineaInjector.c -olineaInjector.o
	gcc $(GCCOPTS) src/marshallADT.c -omarshallADT.o
	gcc $(GCCOPTS) src/queue.c -oqueue.o
	gcc $(GCCOPTS) src/seminjector.c -oseminjector.o
	gcc $(GCCOPTS) src/cityDrawer.c -ocityDrawer.o
	gcc -ocity -lncurses -lpthread city.o bondi.o linea.o lineaInjector.o marshallADT.o queue.o seminjector.o transMsgQueueADT.o cityDrawer.o
	rm *.o

fifo:
	echo 'Armando ejecutable city con comunicacion por FIFO'
	gcc $(GCCOPTS) src/transFifoADT.c -otransFifoADT.o
	gcc $(GCCOPTS) src/city.c -ocity.o
	gcc $(GCCOPTS) src/bondi.c -obondi.o
	gcc $(GCCOPTS) src/linea.c -olinea.o
	gcc $(GCCOPTS) src/lineaInjector.c -olineaInjector.o
	gcc $(GCCOPTS) src/marshallADT.c -omarshallADT.o
	gcc $(GCCOPTS) src/queue.c -oqueue.o
	gcc $(GCCOPTS) src/seminjector.c -oseminjector.o
	gcc $(GCCOPTS) src/cityDrawer.c -ocityDrawer.o
	gcc -ocity -lncurses -lpthread city.o bondi.o linea.o lineaInjector.o marshallADT.o queue.o seminjector.o transFifoADT.o cityDrawer.o
	rm *.o
	
shmem:
	echo 'Armando ejecutable city con comunicacion por Shared Memory'
	gcc $(GCCOPTS) src/transShMemADT.c -otransShMemADT.o
	gcc $(GCCOPTS) src/city.c -ocity.o
	gcc $(GCCOPTS) src/bondi.c -obondi.o
	gcc $(GCCOPTS) src/linea.c -olinea.o
	gcc $(GCCOPTS) src/lineaInjector.c -olineaInjector.o
	gcc $(GCCOPTS) src/marshallADT.c -omarshallADT.o
	gcc $(GCCOPTS) src/queue.c -oqueue.o
	gcc $(GCCOPTS) src/seminjector.c -oseminjector.o
	gcc $(GCCOPTS) src/cityDrawer.c -ocityDrawer.o
	gcc -ocity -lncurses -lpthread city.o bondi.o linea.o lineaInjector.o marshallADT.o queue.o seminjector.o transShMemADT.o cityDrawer.o
	rm *.o


